/* Integration points (quadratures)
   Jan Stebel
*/

#ifndef _LINBUBBLEPOINT_H__
#define _LINBUBBLEPOINT_H__


#include "intpoint.h"

/** Linear + bubble interpolation */
template<unsigned int dim>
class LinBubblePoint : public IntPoint<dim>
{
protected:
	using IntPoint<dim>::imesh;
	bool isLinear() { return false; };

public:
	LinBubblePoint() {};
	LinBubblePoint(Mesh *mesh, const Quadrature<dim> *q) { IntPoint<dim>::init(mesh, q, dim+2); };
	void setGSF();
	void setSF();
	int mapDof(int e, int n);
	int mapDof(int elem, int dof, int iParent);
	int getMeshNdof() { return imesh->getNlnodes()+imesh->getNvolumes() + imesh->getNfaces() + imesh->getNedges(); };
};








#endif
